docker安装最新版Kong(v1.0)+konga
参考以下文档:
docker安装kong+postgresql
1.创建一个docker网络用于docker,postgresql和konga容器间通信
1 | docker network create kong-net |
2.启动posgtresql容器
1 | docker run -d --name kong-database \ |
3.初始化postgresql数据库
1 | $ docker run --rm \ |
注意两点:
1.最好是先删除本地的kong镜像.因为本地的Kong:lastest镜像不一定就是最新版
2.如果本地的kong:latest镜像地域0.15版本,则不支持bootstrap命令.可以将bootstrap命令替换成up
4.启动kong容器
1 | docker run -d --name kong \ |
这里我映射了kong的插件目录和日志目录.
- 注意:要先吧kong容器里的/usr/local/share/lua/5.1/kong/plugins/目录下内容复制到宿主机的/data/apps/kong/plugins/目录下.否则宿主机的空目录会覆盖容器的插件目录,导致容器无法启动.
kong容器目录拷贝到宿主机方法如下:
1.先不挂载目录启动kong容器
2.执行命令拷贝kong容器的/usr/local/share/lua/5.1/kong/plugins/ 目录到宿主机/data/apps/kong/plugins/目录下:
1 | [work@docker ~]$docker cp kong:/usr/local/share/lua/5.1/kong/plugins/ /data/apps/kong/plugins/ |
如果不需要将容器的kong插件目录映射到宿主机的话,这一步可以不需要做
容器已经成功启动:
1 | [work@docker conf.d]$docker ps | grep -E "kong|postgre" |
安装konga
konga是管理kong的一个dashboard界面.
1.先初始化数据库.这里也是用后端的postgresql数据库.官方命令如下:
1 | docker run --rm pantsel/konga:latest -c prepare -a {{adapter}} -u {{connection-uri}} |
argument | description | default |
---|---|---|
-c | command | - |
-a | adapter (can be postgres or mysql ) |
- |
-u | full database connection url |
执行以下命令,初始化数据库:
1 | docker run --rm pantsel/konga:latest -c prepare -a postgres -u postgres://kong@10.0.0.250:5432/konga |
这里稍微有点疑问的是数据库的connection url ..完整的connection url地址是: postgres://user:password@host:port/konga
postgres://kong@10.0.0.250:5432/konga —— 这里kong代表用户名,由于没有密码所以没有指定密码.10.0.0.250是postgresql的host主机名.konga表示初始化一个数据库
执行结果如下:
1 | [work@docker ~]$docker run --rm pantsel/konga:latest -c prepare -a postgres -u postgres://kong@10.0.0.250:5432/konga |
- 启动konga
命令格式如下:
1 | $ docker run -p 1337:1337 |
执行如下命令:
1 | docker run -p 1337:1337 -d \ |
注意: 如果kong是1.0版本(我这里是1.0.3).那么konga的版本不能超过0.14.3.否则会有兼容性问题
容器成功启动:
1 | beb70407b417 pantsel/konga "/app/start.sh" 2 hours ago Up 2 hours 0.0.0.0:1337->1337/tcp konga |